<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="chrome=1">

    

    <title>
      Android 面试要点 | 绍兴吴彦祖 
    </title>

    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    
      <meta name="author" content="ÉÜÐËÎâÑå×æ">
    
    

    <meta name="description" content="1Java技术1.1 Java基础
对抽象、继承、多态的理解泛型的作用及使用场景枚举的特点及使用场景线程sleep和wait的区别JAVA反射机制weak/soft/strong引用的区别Object的hashCode()与equals()的区别和作用
1.2 集合类
JAVA常用集合类功能、区别和性能并发相关的集合类部分常用集合类的内部实现方式
1.3 多线程相关
Thread、Runnable">
<meta property="og:type" content="article">
<meta property="og:title" content="Android 面试要点 | 绍兴吴彦祖">
<meta property="og:url" content="http://yoursite.com/2016/09/10/Android-面试要点/index.html">
<meta property="og:site_name" content="绍兴吴彦祖">
<meta property="og:description" content="1Java技术1.1 Java基础
对抽象、继承、多态的理解泛型的作用及使用场景枚举的特点及使用场景线程sleep和wait的区别JAVA反射机制weak/soft/strong引用的区别Object的hashCode()与equals()的区别和作用
1.2 集合类
JAVA常用集合类功能、区别和性能并发相关的集合类部分常用集合类的内部实现方式
1.3 多线程相关
Thread、Runnable">
<meta property="og:updated_time" content="2016-09-10T13:03:39.768Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Android 面试要点 | 绍兴吴彦祖">
<meta name="twitter:description" content="1Java技术1.1 Java基础
对抽象、继承、多态的理解泛型的作用及使用场景枚举的特点及使用场景线程sleep和wait的区别JAVA反射机制weak/soft/strong引用的区别Object的hashCode()与equals()的区别和作用
1.2 集合类
JAVA常用集合类功能、区别和性能并发相关的集合类部分常用集合类的内部实现方式
1.3 多线程相关
Thread、Runnable">
    
    
    
      <link rel="icon" type="image/x-icon" href="/favicon.png">
    
    <link rel="stylesheet" href="/css/uno.css">
    <link rel="stylesheet" href="/css/highlight.css">
    <link rel="stylesheet" href="/css/archive.css">
    <link rel="stylesheet" href="/css/china-social-icon.css">

</head>
<body>

    <span class="mobile btn-mobile-menu">
        <i class="icon icon-list btn-mobile-menu__icon"></i>
        <i class="icon icon-x-circle btn-mobile-close__icon hidden"></i>
    </span>

    

<header class="panel-cover panel-cover--collapsed">


  <div class="panel-main">

  
    <div class="panel-main__inner panel-inverted">
    <div class="panel-main__content">

        

        <h1 class="panel-cover__title panel-title"><a href="/" title="link to homepage">绍兴吴彦祖</a></h1>
        <hr class="panel-cover__divider" />

        

        <div class="navigation-wrapper">

          <nav class="cover-navigation cover-navigation--primary">
            <ul class="navigation">

              
                
                <li class="navigation__item"><a href="/#blog" title="" class="blog-button">首页</a></li>
              
                
                <li class="navigation__item"><a href="/about" title="" class="">关于</a></li>
              
                
                <li class="navigation__item"><a href="/archive" title="" class="">归档</a></li>
              

            </ul>
          </nav>

          <!-- ----------------------------
To add a new social icon simply duplicate one of the list items from below
and change the class in the <i> tag to match the desired social network
and then add your link to the <a>. Here is a full list of social network
classes that you can use:

    icon-social-500px
    icon-social-behance
    icon-social-delicious
    icon-social-designer-news
    icon-social-deviant-art
    icon-social-digg
    icon-social-dribbble
    icon-social-facebook
    icon-social-flickr
    icon-social-forrst
    icon-social-foursquare
    icon-social-github
    icon-social-google-plus
    icon-social-hi5
    icon-social-instagram
    icon-social-lastfm
    icon-social-linkedin
    icon-social-medium
    icon-social-myspace
    icon-social-path
    icon-social-pinterest
    icon-social-rdio
    icon-social-reddit
    icon-social-skype
    icon-social-spotify
    icon-social-stack-overflow
    icon-social-steam
    icon-social-stumbleupon
    icon-social-treehouse
    icon-social-tumblr
    icon-social-twitter
    icon-social-vimeo
    icon-social-xbox
    icon-social-yelp
    icon-social-youtube
    icon-social-zerply
    icon-mail

-------------------------------->

<!-- add social info here -->



        </div>

      </div>

    </div>

    <div class="panel-cover--overlay"></div>
  </div>
</header>

    <div class="content-wrapper">
        <div class="content-wrapper__inner entry">
            

<article class="post-container post-container--single">

  <header class="post-header">
    
    <h1 class="post-title">Android 面试要点</h1>

    

    <div class="post-meta">
      <time datetime="2016-09-10" class="post-meta__date date">2016-09-10</time> 

      <span class="post-meta__tags tags">

          

          

      </span>
    </div>
    
    

  </header>

  <section id="post-content" class="article-content post">
    <p>1<br>Java技术<br>1.1 Java基础</p>
<p>对抽象、继承、多态的理解<br>泛型的作用及使用场景<br>枚举的特点及使用场景<br>线程sleep和wait的区别<br>JAVA反射机制<br>weak/soft/strong引用的区别<br>Object的hashCode()与equals()的区别和作用</p>
<p>1.2 集合类</p>
<p>JAVA常用集合类功能、区别和性能<br>并发相关的集合类<br>部分常用集合类的内部实现方式</p>
<p>1.3 多线程相关</p>
<p>Thread、Runnable、Callable、Futrue类关系与区别<br>JDK中默认提供了哪些线程池，有何区别<br>线程同步有几种方式，分别阐述在项目中的用法<br>在理解默认线程池的前提下，自己实现线程池</p>
<p>1.4 字符</p>
<p>String的不可变性<br>StringBuilder和StringBuffer的区别<br>字符集的理解：Unicode、UTF-8、GB2312等<br>正则表达式相关问题</p>
<p>1.5 注解</p>
<p>注解的使用<br>注解的级别及意义<br>如何自定义注解</p>
<p>2<br>Android技术<br>2.1 Android基础</p>
<p>四大组件的意义及使用，生命周期回调及意义<br>AsyncTask、Handler的使用<br>Android系统层次框架结构<br>AsyncTask的实现方式<br>AsyncTask使用的时候应该注意什么<br>Android常见的存储方式<br>Looper、Handler和MessageQueue的关系<br>Activity的启动流程（考察对Framwork的熟悉程度）<br>多进程开发的注意事项(Application类区分进程，进程间内存不可见、进程间通讯方式)</p>
<p>2.2 Resource相关</p>
<p>.9图片的意义<br>style和theme的作用及用法<br>dpi、sp、px的区别以及转换关系<br>raw和assets文件夹的作用，二者有何区别<br>Android系统如何在多个资源文件夹下查找匹配最合适的资源</p>
<p>2.3 虚拟机</p>
<p>Java内存模型<br>Android虚拟机的特点<br>Dalvik和Art的区别<br>熟悉垃圾回收的实现机制，了解虚拟机的GC类型</p>
<p>2.4 View相关</p>
<p>常用组件的使用：ListView、RecyclerView及Adapter的使用<br>View之间的继承关系<br>Invalidate与postInvalidate的区别<br>自定义View的实现方式(根据项目经验询问相关组件)。<br>onMeasure/onLayout/onDraw的作用<br>Paint、Matrix、Shader等绘制相关类的方法作用<br>详细描述事件分发机制</p>
<p>2.5 动画</p>
<p>Android有哪些动画的实现方式<br>Interpolator类的意义和常用的Interpolator<br>ViewAnimation与属性动画有什么区别<br>如何自定义ViewAnimation<br>属性动画的实现原理</p>
<p>2.6 图片处理</p>
<p>一般项目中如何加载大图<br>图片压缩的方式<br>如何不压缩图片加载高清图<br>图片加载过程中，一般会使用缓存，这个缓存的主要作用是什么<br>谈谈自己熟悉的图片加载框架</p>
<p>3<br>项目经验<br>3.1 开发工具</p>
<p>代码管理工具：SVN、Git<br>常用的调试工具:Hierarchy Viewer、DDMS等<br>CI工具：Lint检查，FindBugs、Jenkins<br>内存分析工具：dumpsys、memoinfo、MAT</p>
<p>3.2 项目工程</p>
<p>APP更新策略：推送或者拉取？<br>如何统一处理错误崩溃<br>如何进行用户行为收集<br>日志管理有哪些要点？(Debug包开放，release包关闭，错误日志反馈)<br>打包方式Ant、Maven、Gradle<br>机型适配情况</p>
<p>3.3 开放平台</p>
<p>是否使用过第三方平台<br>常用开放平台的熟悉度(微信、QQ、微博、支付宝等常用的支付和分享)<br>是否进行过对第三方平台的统一封装？<br>是否自己开发过SDK？</p>
<p>3.4 设计相关</p>
<p>有哪些常用的设计模式、设计原则<br>设计模式在Android源码中的应用<br>设计模式在项目中的应用<br>项目中的分包方式<br>MVC在android中的应用，利弊<br>android项目中的常见层次结构,包划分<br>有没有设计过项目中的层级结构、包划分</p>
<p>好了，大概就这么多，大家可以考察下自己对于知识点的掌握情况。<br>对于答案，我觉得只要你真的会了，用自己的语言去描述就是最好的答案~</p>

  </section>

  
  

<section class="post-comments">

    <div class="ds-thread" data-thread-key="2016/09/10/Android-面试要点/"></div>

    <script type="text/javascript">
      var duoshuoQuery = {short_name:"lnychian"};
      (function() {
        var ds = document.createElement('script');
        ds.type = 'text/javascript';ds.async = true;
        ds.src = '//static.duoshuo.com/embed.js';
        ds.charset = 'UTF-8';
        (document.getElementsByTagName('head')[0] 
        || document.getElementsByTagName('body')[0]).appendChild(ds);
      })();
    </script> 

</section>


</article>


            <footer class="footer">

    <span class="footer__copyright">&copy; 2016-. | <a href="https://lovegyn.cn/">lnychain</a> | 主题<a href="https://github.com/someus/huno">Huno</a></span>
    
</footer>
        </div>
    </div>

    <!-- js files -->
    <script src="/js/jquery.min.js"></script>
    <script src="/js/main.js"></script>
    <script src="/js/scale.fix.js"></script>
    

    

    <script type="text/javascript" src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    <script type="text/javascript"> 
        $(document).ready(function(){
            MathJax.Hub.Config({ 
                tex2jax: {inlineMath: [['[latex]','[/latex]'], ['\\(','\\)']]} 
            });
        });
    </script>


    

    <script src="/js/awesome-toc.min.js"></script>
    <script>
        $(document).ready(function(){
            $.awesome_toc({
                overlay: true,
                contentId: "post-content",
            });
        });
    </script>


    
    
    <!--kill ie6 -->
<!--[if IE 6]>
  <script src="//letskillie6.googlecode.com/svn/trunk/2/zh_CN.js"></script>
<![endif]-->

</body>
</html>
